package com.jt.controller;

import com.jt.pojo.Item;
import com.jt.pojo.ItemDesc;
import com.jt.vo.EasyUiTable;
import com.jt.vo.SysResult;
import org.apache.http.impl.io.IdentityInputStream;
import org.aspectj.lang.annotation.DeclareParents;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import com.jt.service.ItemService;
import org.springframework.web.bind.annotation.RestController;

@RestController
//@CrossOrigin(origins = "*", maxAge = 3600)
@RequestMapping("/item/")
@CrossOrigin
public class ItemController {
	
	@Autowired
	private ItemService itemService;
	/**
	 * 业务需求:商品信息的分页查询
	 * url地址:
	 * 请求参数:page 页数,rows 行数
	 * 返回值结果:EasyUITable
	 */
	@RequestMapping("query")
	public EasyUiTable findItemByPage(Integer page,Integer rows,String query){
		return itemService.findItemByPage(page,rows,query);
	}
	/**
	 * 业务需求:完成商品入库操作,返回系统vo对象
	 * url1:/item/save
	 * 参数:整个form表单	itemDesc参数
	 * 返回值:SysResult对象
	 */
	@RequestMapping("save")
	public SysResult saveItem(Item item, ItemDesc itemDesc){
		itemService.saveItem(item,itemDesc);
		return SysResult.success();
		//全局异常的处理机制!!!!
//		try {
//			itemService.saveItem(item);
//		}catch (Exception e){
//			e.printStackTrace();
//			return SysResult.fail();
//		}
//		return SysResult.success();
	}
	/**
	 * 业务说明：商品修改操作
	 * url：/item/update
	 * 参数：整个from表单
	 * 返回值：Sysresult
	 */
	@RequestMapping("update")
	public SysResult updateItem(Item item,ItemDesc itemDesc){
		itemService.updateItem(item,itemDesc);
		return SysResult.success();
	}
	/**
	 * 商品删除
	 * url：/item/delete
	 * 参数{"ids":"100,101,102"}
	 * 返回值：系统返回值变量
	 * 注意事项：取值与赋值操作的key必须相同
	 */
	@RequestMapping("delete")
	public SysResult deleteItem(Long... ids){
		itemService.deleteItems(ids);
		return SysResult.success();
	}
	/**
	 * 需求：利用一个方法实现商品上架/下架操作
	 * url1：/item/updateStatus/2	status=2
	 * url2：/item/updateStatus/1	status=1
	 */
	@RequestMapping("updateStatus/{status}")
	public SysResult updateStatus(@PathVariable("status") Integer status,Long... ids){
		itemService.updateStatus(status,ids);
		return SysResult.success();
	}
	/**
	 * 根据ItemId查询ItemDesc对象
	 * url：/query/item/desc/ItemId
	 * 参数：restful形式
	 * 返回值：SysResult
	 */
	@RequestMapping("query/item/desc/{itemId}")
	public SysResult findItemDescById(@PathVariable Long itemId){
		ItemDesc itemDesc = itemService.findItemDescById(itemId);
		return SysResult.success(itemDesc);
	}


	
	
	
}
